﻿/**	\file		case_ctrl.h
 *	\date		(2014-09-16 23:02:27)/(2014-11-24 14:58:19)
 *-----------------------------------------------------------------------------
 *	\version	1.0.0.1
 *	\author		Nick Shallery	(nicknide@gmail.com)
 *	\copyright	YOU HAVE ALL LEFT WITH THIS CODE WHILE YOU KEEP COMMENT IN EVERY COPY.
 *-----------------------------------------------------------------------------
**/

#if			!defined(__LOLIX__TRIAL__CASE_CTRL__NICK__K_IN_G__)
#define		__LOLIX__TRIAL__CASE_CTRL__NICK__K_IN_G__


#if			!defined(__LOLIX__LOLIX_TYPE__K_IN_G__)
	#include	"../lolix/lolix_type.h"
#endif	//	!defined(__LOLIX__LOLIX_TYPE__K_IN_G__)


namespace lxtrial
{
	class case_chk;
	/**
	* \brief	用力控制器，外部测试框架用.
	**/
	class LOLIX_NO_VTABLE case_ctrl
		: public lolix::itf
	{
		LOLIX_DECLARE_ITF(lxtrial::case_ctrl, lolix::itf, (0x060e1684, 0x9f184534, 0x82b6fe69, 0x42e10a21));

		/**
		 * \brief	设置依赖关系，根据此关系构建一棵树.
		 *
		 * \param	the_case	待设定的用例.
		 * \param	depend_case	the_case 所依赖的用例.
		 * \return	是否设置成功.
		**/
		LOLIX_INTERFACE(set_depend, lolix::LOLIX_RETNV, (lolix::lx_wchar const* const the_case, lolix::lx_wchar const* const depend_case));

		/**
		 * \brief	运行用例.
		 *
		 * \param	cchk	用例测试器.
		 * \return	是否测试成功.
		**/
		LOLIX_INTERFACE(run_cases, lolix::LOLIX_RETNV, (case_chk* cchk));
	};
}

#endif	//	!defined(__LOLIX__TRIAL__CASE_CTRL__NICK__K_IN_G__)
